Java Technologies Optional এর মেথড (orElse, orElseGet, orElseThrow) গাইড ও নোট

307

Guava এর Optional ক্লাস মূলত null হ্যান্ডলিংকে আরও সুরক্ষিত ও সহজ করার জন্য ব্যবহৃত হয়। এটি ডেভেলপারদের nullPointerException এড়াতে সহায়তা করে। Optional এ বেশ কিছু মেথড রয়েছে, যেগুলোর মধ্যে orElse, orElseGet, এবং orElseThrow অন্যতম।


orElse মেথড

কী করে?

orElse মেথড একটি ডিফল্ট ভ্যালু প্রদান করে। যদি Optional এ কোনো মান না থাকে, তাহলে এটি সেই ডিফল্ট মান প্রদান করে।

সিনট্যাক্স

T orElse(T other);

উদাহরণ

import com.google.common.base.Optional;

public class OrElseExample {
    public static void main(String[] args) {
        Optional<String> optional = Optional.absent();
        String result = optional.orElse("Default Value");
        System.out.println(result); // আউটপুট: Default Value

        optional = Optional.of("Hello, Guava!");
        result = optional.orElse("Default Value");
        System.out.println(result); // আউটপুট: Hello, Guava!
    }
}

orElseGet মেথড

কী করে?

orElseGet মেথড একটি Supplier ব্যবহার করে ডিফল্ট মান সরবরাহ করে। এটি শুধুমাত্র তখনই এক্সিকিউট হয়, যখন Optional-এ কোনো মান উপস্থিত না থাকে।

সিনট্যাক্স

T orElseGet(Supplier<? extends T> supplier);

উদাহরণ

import com.google.common.base.Optional;

public class OrElseGetExample {
    public static void main(String[] args) {
        Optional<String> optional = Optional.absent();
        String result = optional.orElseGet(() -> "Generated Value");
        System.out.println(result); // আউটপুট: Generated Value

        optional = Optional.of("Hello, Guava!");
        result = optional.orElseGet(() -> "Generated Value");
        System.out.println(result); // আউটপুট: Hello, Guava!
    }
}

orElse বনাম orElseGet

  • orElse ডিফল্ট মানটি সব সময় তৈরি করে, এমনকি সেটি ব্যবহৃত না হলেও।
  • orElseGet ডিফল্ট মানটি শুধুমাত্র প্রয়োজন হলে তৈরি করে।

orElseThrow মেথড

কী করে?

orElseThrow মেথড একটি Exception নিক্ষেপ করে, যদি Optional-এ কোনো মান উপস্থিত না থাকে।

সিনট্যাক্স

<T extends Throwable> T orElseThrow(Supplier<? extends T> exceptionSupplier) throws T;

উদাহরণ

import com.google.common.base.Optional;

public class OrElseThrowExample {
    public static void main(String[] args) {
        Optional<String> optional = Optional.absent();
        try {
            String result = optional.orElseThrow(() -> new IllegalArgumentException("No Value Present"));
            System.out.println(result);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage()); // আউটপুট: No Value Present
        }

        optional = Optional.of("Hello, Guava!");
        String result = optional.orElseThrow(() -> new IllegalArgumentException("No Value Present"));
        System.out.println(result); // আউটপুট: Hello, Guava!
    }
}

তুলনা: orElse, orElseGet, এবং orElseThrow

মেথডব্যবহারের উদ্দেশ্যযখন মান উপস্থিত নেইযখন মান উপস্থিত আছে
orElseএকটি ডিফল্ট মান প্রদান করেডিফল্ট মান ফেরত দেয়মূল মান ফেরত দেয়
orElseGetএকটি Supplier থেকে মান জেনারেট করেমান জেনারেট করেমূল মান ফেরত দেয়
orElseThrowএকটি Exception নিক্ষেপ করেException নিক্ষেপ করেমূল মান ফেরত দেয়

কখন কোনটি ব্যবহার করবেন?

  • orElse: যখন একটি স্থির ডিফল্ট মান প্রয়োজন।
  • orElseGet: যখন ডিফল্ট মানটি তৈরির সময় ব্যয়বহুল বা ডায়নামিক।
  • orElseThrow: যখন মান উপস্থিত না থাকলে একটি নির্দিষ্ট Exception নিক্ষেপ করতে চান।

Guava এর Optional মেথডগুলোর মাধ্যমে কোডে null handling আরও সুরক্ষিত এবং কার্যকর করা যায়। এগুলো clean coding practices বজায় রাখতে অত্যন্ত সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...